[Java]sinatraみたいなフレームワーク「spark」
sinatraみたいなフレームワーク
sinatraとは、Rubyの軽量WEBフレームワークです。 小規模なアプリケーションに特化しており、直感的に記述できて人気らしいです。 今回紹介するsparkは、そんなsinatraにインスパイアされて開発されたフレームワークみたいです。
セットアップも簡単なので、試してみましょう。
環境構築方法
今回使用した動作環境は以下のとおりです。
- OS : MacOS X 10.7.5
- Apache Maven : 3.0.3
- Java : 1.7.0_17
sparkを試してみる
では、プロジェクトを作成してsparkを動かしてみましょう。 まずはmavenを使ってプロジェクトのひな形を作成します。
% mvn archetype:create -DgroupId=com.example -DartifactId=sample
生成されたpom.xmlを次の用に修正します。sparkライブラリの依存関係を追加しましょう。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>sample</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>sample</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- sparkライブラリ追加ここから --> <dependency> <groupId>com.sparkjava</groupId> <artifactId>spark-core</artifactId> <version>1.1</version> </dependency> <!-- sparkライブラリ追加ここまで --> </dependencies> </project>
installコマンドを使い、sparkをインストールしておきましょう。
% cd path/your/sparkProject % mvn install
下記コマンドを実行してEclipseプロジェクト化した後、Eclipseにimportします。
% mvn eclipse:eclipse //Eclipseでimportをする
Eclipseで、生成されたApp.javaを編集しましょう。 sparkでは次のようにmainメソッドに記述すれば、組み込みのjettyで動かすことができます。
//srcs/spark/sample/src/main/java/com/example/App.java package com.example; import static spark.Spark.*; import spark.*; public class App { public static void main(String[] args) { get(new Route("/hello") { @Override public Object handle(Request request, Response response) { return "Hello World!"; } }); } }
ここでは、/helloにGETリクエストがきたら、「Hello World!」という文字列を返しています。 見ただけでどんな処理をしているか、すぐにわかりますね。 また、get関数以外にはpost/put/delete等の関数があり、main関数に続けて記述することで、複数のルート情報を追加できます。
では、アプリを実行してみましょう。通常のJavaアプリを実行するときと同じく、Appクラスを実行します。
//実行時のコンソール == Spark has ignited ... >> Listening on 0.0.0.0:4567
アプリが起動したら、ブラウザでアクセスしてみましょう。デフォルトでは4567番ポートで起動します。 http://localhost:4567/helloにアクセスすると、画面に文字列が表示されます。
まとめ
たしかに、直感的でわかりやすいですね。 もちろんフィルタやビューテンプレート等、ある程度の機能はそろっているので、確認してみてください。
参考サイトなど
- spart公式: http://www.sparkjava.com